public class towDimensionArray02 {
    public static void main(String[] args) {
        /*二维数组的使用：
        使用方式1 ：动态初始化
        语法： 数据类型[ ][ ] 数组名= new 类型[大小][大小];
                int a[ ][ ] = new int[2][3];
         使用方式2 ：动态初始化
          1.先声明：数据类型 数组名[ ][ ];
          2.在定义（开辟空间） 数组名 = new 类型[大小][大小];
          int arr[ ][ ];
          arr = new int[2][3];
          arr[1][1] = 8;
         使用方法3 ：动态初始化-列数不确定
          动态创建如下的二维数组并输出
          i = 0 : 1
          i = 1 : 2 2
          i = 2 : 3 3 3
        * */
        int arr[][] = new int[3][];//创建一个二维数组，但是之确定了一维数组的个数
        for (int i = 0; i < arr.length; i++) {//遍历 arr 的每一个一维数组
            //给每一个一维数组开辟空间 new
            //如果没有给一维数组 new ，那么 arr[i] 将是 null
            arr[i] = new int[i+1];
            //遍历一维数组并给每个一维数组赋值
            for (int j = 0; j < arr[i].length; j++) {
                arr[i][j] = i + 1;
            }
        }
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j]+" ");
            }
        }
        System.out.println();
        /*二维数组的使用
        使用方式4：静态初始化
        定义： 数据类型 数组名[ ][ ] = {{值1, 值2 ,..}, {值1, 值2 ,..}, {值1, 值2 ,..}};
                int[][] arr = {{1, 1, 1}, {8, 8, 8}, {10}};
                //解读：定义了一个二维数组 arr
                       arr有三个元素（每个元素都是一维数组）
                       第一个一维数组有三个元素，第二个有三个元素，第三个有一个元素
        * */

        //案例：int arr[][] = {{4, 6},{1, 4, 5, 7},{-2}};遍历该二维数组，并得到和
        /*思路分析：
        遍历二维数组，并将各个值累计到 total 中
        * */
        int arr1[][] = {{4, 6},{1, 4, 5, 7},{-2}};
        int total = 0;
        for (int i = 0; i < arr1.length; i++) {
            for (int j = 0; j < arr1[i].length; j++) {
                total = total + arr1[i][j];
                System.out.print(arr1[i][j]+ " ");
            }
            System.out.println();
        }
        System.out.println("total = " + total);
    }
}
